package com.nuanshui.heatedloan.baseservice.facade;

import com.nuanshui.heatedloan.constant.DubboCacheRegion;
import com.nuanshui.heatedloan.dal.module.Advertisement;
import com.nuanshui.heatedloan.dal.vo.AdvertisementVO;
import com.nuanshui.heatedloan.dubbo.extension.cache.Cacheable;
import com.nuanshui.heatedloan.model.Image;

import java.util.List;


public interface AdvertisementService {

	void save(Advertisement Advertisemen);
	
	@Cacheable(value=DubboCacheRegion.CACHE_CONSTANT_ADVERTISEMENTVO)
    AdvertisementVO loadVO(String id);
	
	/**
	 *
	 * @param bizId
	 * @param bizType
	 * @retur
	 */
	@Cacheable(value=DubboCacheRegion.CACHE_CONSTANT_ADVERTISEMENTVO)
    List<AdvertisementVO> findByBizTypeAndBizId(Integer bizType,String bizId);

	List<AdvertisementVO> findByBizType(Integer bizType);
	
	/**
	 * 获取第一张广告图片
	 * @author Gonzo
	 * @date 2016年12月6日下午4:00:41
	 * @param bizId
	 * @param bizType
	 * @return
	 * @since 1.0.0
	 */
    AdvertisementVO findFirstByBizIdAndBizType(Integer bizType,String bizId);
	
	/**
	 * 查询当前业务类型的banner的sortNum
	 * @author Gonzo
	 * @date 2016年12月6日下午6:14:32
	 * @param bizId
	 * @param bizType
	 * @since
	 */
    Integer findBannerOrderNum(String bizId, Integer bizType);

	/**
	 *
	 * @param bizId
	 * @param bizTyp
	 */
    void deleteAdvertisement(String bizId, int bizTyp);


	/**
	 * 根据加密Id进行软删除
	 * @param id
	 */
	void deleteById(String id);
	
	/**
	 * 保存广告图，根据一个mediaImage对象
	 * @author Gonzo
	 * @date 2016年12月7日上午11:16:05
	 * @param image
	 * @param bizId
	 * @param bizType
	 * @param orderNum
	 * @return
	 * @since
	 */
    Advertisement saveAdvertisementByImage(Image image, String bizId, int bizType, int orderNum);

	/**
	 * 获取首页场馆图片
	 */
	Image findFirstListImage(String bizId, Integer bizType);
	
	
	/***
	 * 获取默认图片
	 */
    AdvertisementVO findDefaultAdvertisementVO();
	
}
